package com.lingnan.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lingnan.dto.CompanyCreateDTO;
import com.lingnan.dto.UpdateCompanyRequest;
import com.lingnan.dto.UpdateHrDTO;
import com.lingnan.entity.po.Company;
import com.lingnan.entity.po.CompanyHr;
import com.lingnan.vo.CompanyVO;

import java.util.List;

// CompanyService.java
public interface CompanyService extends IService<Company> {

    /**
     * 创建企业信息
     * @param createDTO 企业创建信息
     * @param userId 当前用户ID
     * @return 创建的企业信息
     */
    Company createCompany(CompanyCreateDTO createDTO, Long userId);

    /**
     * 删除企业（同时删除企业主账号和所有HR）
     */
    boolean deleteCompany(Long companyId);

    /**
     * 修改企业信息
     */
    boolean updateCompany(UpdateCompanyRequest request);

    /**
     * 根据ID查询企业详情
     */
    CompanyVO getCompanyById(Long companyId);

    /**
     * 分页查询企业列表
     */
    IPage<CompanyVO> getCompanyPage(Page<Company> page, String name, Integer status);


    /**
     * 启用/禁用企业
     */
    boolean toggleCompanyStatus(Long companyId, Integer status);

    /**
     * 根据用户ID查询企业信息
     */
    Company getCompanyByUserId(Long userId);
    
    /**
     * 添加HR
     */
    boolean addHr(CompanyHr companyHr, String hrPassword);
    
    /**
     * 删除HR
     */
    boolean deleteHr(Long hrId);
    
    /**
     * 修改HR信息
     */
    boolean updateHr(UpdateHrDTO updateHrDTO);
    
    /**
     * 查询HR列表
     */
    List<CompanyHr> getHrList(Long companyId);
    
    /**
     * 根据ID查询HR
     */
    CompanyHr getHrById(Long hrId);
    
    /**
     * 发送资质认证申请
     */
    boolean submitQualification(Long companyId);
}